জেএসপি (JSP) ব্যবহার করে ওয়েব অ্যাপ্লিকেশন থেকে ডেটাবেসে ডেটা ইনসার্ট, আপডেট বা ডিলিট করা খুবই সাধারণ একটি কাজ। এখানে আমরা JDBC (Java Database Connectivity) ব্যবহার করে ডেটাবেস অপারেশন সম্পাদন করব। JDBC Java API যা ডেটাবেসের সাথে কানেকশন স্থাপন, ডেটা প্রক্রিয়া করা এবং ডেটাবেসে অপারেশন চালানোর জন্য ব্যবহৃত হয়।
JDBC কনফিগারেশন
JDBC ব্যবহার করতে প্রথমে ডেটাবেসের সাথে সংযোগ স্থাপন করতে হবে। নিচে একটি সাধারণ JDBC কনফিগারেশন দেখানো হল।
<%@ page import="java.sql.*" %>
<%
// ডেটাবেসের জন্য প্রয়োজনীয় ইনফরমেশন
String dbURL = "jdbc:mysql://localhost:3306/your_database";
String dbUser = "root";
String dbPass = "password";
// ডেটাবেস কানেকশন তৈরি করা
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.cj.jdbc.Driver");
conn = DriverManager.getConnection(dbURL, dbUser, dbPass);
stmt = conn.createStatement();
} catch (Exception e) {
out.println("Error: " + e.getMessage());
}
%>
এখানে ডেটাবেস কানেকশন ইনফরমেশন যেমন dbURL, dbUser, এবং dbPass ব্যবহার করা হয়েছে। এছাড়া Connection, Statement, এবং ResultSet অবজেক্টগুলো ডেটাবেসের সাথে কাজ করার জন্য ব্যবহৃত হবে।
ডেটাবেস অপারেশন: ইনসার্ট (Insert)
ডেটাবেসে নতুন রেকর্ড ইনসার্ট করার জন্য INSERT INTO SQL কমান্ড ব্যবহার করা হয়। নিচে একটি উদাহরণ দেওয়া হল যেখানে একটি ফর্ম থেকে ডেটা ইনসার্ট করা হচ্ছে।
<%@ page import="java.sql.*" %>
<%
String name = request.getParameter("name");
String email = request.getParameter("email");
try {
String query = "INSERT INTO users (name, email) VALUES (?, ?)";
PreparedStatement pst = conn.prepareStatement(query);
pst.setString(1, name);
pst.setString(2, email);
int result = pst.executeUpdate();
if(result > 0) {
out.println("Record inserted successfully.");
} else {
out.println("Failed to insert record.");
}
} catch (SQLException e) {
out.println("Error: " + e.getMessage());
}
%>
এখানে INSERT INTO SQL কমান্ডের মাধ্যমে ব্যবহারকারীর নাম এবং ইমেইল ডেটাবেসে ইনসার্ট করা হচ্ছে। PreparedStatement ব্যবহার করা হয়েছে যাতে SQL ইনজেকশন থেকে নিরাপদ থাকা যায়।
ডেটাবেস অপারেশন: আপডেট (Update)
ডেটাবেসে বিদ্যমান রেকর্ড আপডেট করতে UPDATE SQL কমান্ড ব্যবহার করা হয়। নিচে একটি উদাহরণ দেওয়া হল যেখানে ব্যবহারকারীর ইমেইল আপডেট করা হচ্ছে।
<%@ page import="java.sql.*" %>
<%
int userId = Integer.parseInt(request.getParameter("userId"));
String newEmail = request.getParameter("email");
try {
String query = "UPDATE users SET email = ? WHERE id = ?";
PreparedStatement pst = conn.prepareStatement(query);
pst.setString(1, newEmail);
pst.setInt(2, userId);
int result = pst.executeUpdate();
if(result > 0) {
out.println("Record updated successfully.");
} else {
out.println("Failed to update record.");
}
} catch (SQLException e) {
out.println("Error: " + e.getMessage());
}
%>
এখানে UPDATE SQL কমান্ডের মাধ্যমে নির্দিষ্ট userId এর জন্য ব্যবহারকারীর ইমেইল আপডেট করা হচ্ছে। আবারও PreparedStatement ব্যবহার করা হয়েছে।
ডেটাবেস অপারেশন: ডিলিট (Delete)
ডেটাবেসে একটি রেকর্ড মুছে ফেলার জন্য DELETE SQL কমান্ড ব্যবহার করা হয়। নিচে একটি উদাহরণ দেওয়া হল যেখানে ব্যবহারকারীর রেকর্ড ডিলিট করা হচ্ছে।
<%@ page import="java.sql.*" %>
<%
int userId = Integer.parseInt(request.getParameter("userId"));
try {
String query = "DELETE FROM users WHERE id = ?";
PreparedStatement pst = conn.prepareStatement(query);
pst.setInt(1, userId);
int result = pst.executeUpdate();
if(result > 0) {
out.println("Record deleted successfully.");
} else {
out.println("Failed to delete record.");
}
} catch (SQLException e) {
out.println("Error: " + e.getMessage());
}
%>
এখানে DELETE FROM SQL কমান্ডের মাধ্যমে নির্দিষ্ট userId এর রেকর্ড ডিলিট করা হচ্ছে।
সার্বিক পর্যালোচনা
এই উদাহরণগুলো দেখিয়েছে কীভাবে JSP এবং JDBC ব্যবহার করে ডেটাবেসে Insert, Update, এবং Delete অপারেশন করা যায়। প্রতিটি অপারেশনেই PreparedStatement ব্যবহার করা হয়েছে, যা SQL ইনজেকশন থেকে সুরক্ষা নিশ্চিত করে। এই ধরণের অপারেশন করতে ডেটাবেসের সাথে একটি সফল কানেকশন স্থাপন করা অত্যন্ত গুরুত্বপূর্ণ।
Read more